hdf5

Copyright by The HDF Group. * Copyright by the Board of Trustees of the University of Illinois. * All rights reserved. * * This file is part of HDF5. The full HDF5 copyright notice, including * terms governing use, modification, and redistribution, is contained in * the files COPYING and Copyright.html. COPYING can be found at the root * of the source code distribution tree; Copyright.html can be found at the * root level of an installed copy of the electronic HDF5 document set and * is linked from the top-level documents page. It can also be found at * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * access to either file, you may request a copy from help@hdfgroup.org. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Ported to D by Laeeth Isharc 2014 Borrowed heavily in terms of C API declarations from https://github.com/SFrijters/hdf5-d Stefan Frijters bindings for D

I do not think these are complete, and I also wanted to begin to work on a higher level D interface. Initially just using strings instead of chars, for example. And exceptions instead of checking status code each time. Later will add a higher level interface similarly to how it is done in h5py.

Consider this not even alpha stage. It probably isn't so far away from being useful though. This is written for Linux and will need modification to work on other platforms.

More...

Modules

bindings
module hdf5.bindings

hdf5.bindings

wrap
module hdf5.wrap

hdf5.wrap

wraphl
module hdf5.wraphl

hdf5.wraphl - D wrappers for 'high level' C API for HDF5

Members

Aliases

H5D_operator_t
alias H5D_operator_t = herr_t function(void* elem, hid_t type_id, int ndim, const hsize_t* point, void* operator_data)
H5P_ROOT
alias H5P_ROOT = H5P_CLS_ROOT_g
H5P_cls_create_func_t
alias H5P_cls_create_func_t = herr_t function(hid_t prop_id, void* create_data)

Enums

H5DLayout
enum H5DLayout
H5OType
enum H5OType

Functions

H5Lmove
herr_t H5Lmove(hid_t src_loc, const char* src_name, hid_t dst_loc, const char* dst_name, hid_t lcpl_id, hid_t lapl_id)
H5Oopen
hid_t H5Oopen(hid_t loc_id, const char* name, hid_t lapl_id)
H5Pcreate_class
hid_t H5Pcreate_class(hid_t parent, const char* name, H5P_cls_create_func_t cls_create, void* create_data, H5P_cls_copy_func_t cls_copy, void* copy_data, H5P_cls_close_func_t cls_close, void* close_data)
H5Pset_copy_object
herr_t H5Pset_copy_object(hid_t plist_id, uint crt_intmd)

herr_t H5Pset_elink_cb(hid_t lapl_id, H5L_elink_traverse_t func, void *op_data); herr_t H5Pget_elink_cb(hid_t lapl_id, H5L_elink_traverse_t *func, void **op_data);

Manifest constants

H5D_CHUNK_CACHE_NSLOTS_DEFAULT
enum H5D_CHUNK_CACHE_NSLOTS_DEFAULT;
H5O_COPY_SHALLOW_HIERARCHY_FLAG
enum H5O_COPY_SHALLOW_HIERARCHY_FLAG;

Static variables

H5P_CLS_ROOT_g
hid_t H5P_CLS_ROOT_g;

Detailed Description

To Do: 1. Better exception handling that calls HDF5 to get error and returns appropriate Throwable object 2. Unit tests 3. Thoughtfulness about using D CFTE/reflection/templating to make it work better - also variants etc should be able to pass the data structure not cast(ubyte*) should automatically use reflection to deal with structs etc

Meta